package org.dromara.xyyw.domain.bo;

import org.dromara.xyyw.domain.XyywShopProductComment;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.util.Date;
import java.io.Serial;
import java.io.Serializable;

/**
 * 商铺商品评论业务对象 xyyw_shop_product_comment
 *
 * @author yf
 * @date 2024-05-29
 */
@Data
@AutoMapper(target = XyywShopProductComment.class, reverseConvertGenerate = false)
public class XyywShopProductCommentBo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 评论ID
     */
    @NotNull(message = "评论ID不能为空", groups = {EditGroup.class})
    private Integer commentId;

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer userId;

    /**
     * 商铺ID
     */
    @NotNull(message = "商铺ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer shopId;

    /**
     * 评论内容
     */
    private String discuss;

    /**
     * 评价分数（或星级）
     */
    private Integer rating;

    /**
     * 是否匿名（0：否，1：是）
     */
    private String isAnonymous;

    /**
     * 用户昵称（或用户名）
     */
    private String nickname;

    /**
     * 回复状态
     */
    private String replyStatus;

    /**
     * 父评论ID（如果支持楼层回复）
     */
    private Integer parentCommentId;

    /**
     * 图片/视频URL（评论附带的多媒体）
     */
    private String mediaImage;

    /**
     * 举报次数
     */
    private Integer reportCount;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 踩数
     */
    private Integer dislikeCount;

    /**
     * 评论类型（1：好评，2：中评，3：差评）
     */
    private String commentType;

    /**
     * 评论可见性（0：公开，1：隐藏）
     */
    private String visibility;

}
